package com.shopping.mall.core.module.goodsSpecification.service;

import com.shopping.mall.core.module.goodsSpecification.vo.GoodsSpecificationVo;
import com.shopping.mall.base.http.Result;
import com.shopping.mall.core.module.goodsSpecification.entity.GoodsSpecification;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shopping.mall.core.module.goodsSpecification.entity.NumPrice;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * GoodsSpecification服务类
 * </p>
 *
 * @author zzy
 * @date 2021-08-28
 */
public interface GoodsSpecificationService extends IService<GoodsSpecification> {

    GoodsSpecification specificationJsonInfo(String id);

    /**
     * 添加规格
     *
     * @param goodsSpecificationVo: 规格接收类
     * @return Result<Object>
     */
    Result<Object> addGoodsSpecification(GoodsSpecificationVo goodsSpecificationVo);

    /**
     * 根据规格信息返回规格
     *
     * @param specification
     * @return
     */
    Result<Object> specificationInfo(List<Map<String, String>> specification);

    /**
     * 更新商品stock,price,currentPrice
     *
     * @param goodsId
     */
    void goodsUpdate(String goodsId);

    /**
     * 分页查询
     *
     * @param current：页码
     * @param size：每页条数
     * @param goodsSpecification：筛选条件
     * @return IPage<GoodsSpecification>
     */
    IPage<GoodsSpecification> getGoodsSpecificationPage(Integer current, Integer size, GoodsSpecification goodsSpecification);

    /**
     * 查询所有
     *
     * @param goodsSpecification：筛选条件
     * @return List<GoodsSpecification>
     */
    List<GoodsSpecification> getAll(GoodsSpecification goodsSpecification);

    /**
     * 通过id删除
     *
     * @param id：goodsSpecificationId
     * @return Result<Object>
     */
    Result<Object> deleteById(String id);

    /**
     * 批量删除
     *
     * @param ids：id列表
     * @return Result<Object>
     */
    Result<Object> batchDelete(List<String> ids);
}
